package com.xueyi.system.program.domain.po;

import java.time.LocalDateTime;
import java.util.Date;

import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xueyi.common.core.web.tenant.base.TBaseEntity;
import com.xueyi.system.program.domain.dto.BaseTrainProgramDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.xueyi.common.core.annotation.Excel;

/**
 * 培训计划 持久化对象
 *
 * @author yanhe
 */
@TableName(value = "base_train_program", excludeProperty = {"sort"},autoResultMap = true)
public class BaseTrainProgramPo extends TBaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 培训日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "培训日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("train_date")
    private LocalDateTime trainDate;

    /**
     * 培训对象
     */
    @Excel(name = "培训对象")
    @TableField("train_targets")
    private String trainTargets;

    /**
     * 培训地点
     */
    @Excel(name = "培训地点")
    @TableField("train_place")
    private String trainPlace;

    /**
     * 培训内容
     */
    @Excel(name = "培训内容")
    @TableField("train_content")
    private String trainContent;

    /**
     * 培训老师
     */
    @Excel(name = "培训老师")
    @TableField("train_teacher")
    private String trainTeacher;

    /**
     * 课时
     */
    @Excel(name = "课时")
    @TableField("class_hour")
    private String classHour;

    /**
     * 计划制定
     */
    @Excel(name = "计划制定")
    @TableField("plan_marker")
    private String planMarker;

    /**
     * 计划制定日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "计划制定日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("plan_marker_date")
    private LocalDateTime planMarkerDate;

    /**
     * 计划审核人
     */
    @Excel(name = "计划审核人")
    @TableField("plan_audit")
    private String planAudit;

    /**
     * 计划审核日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "计划审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("plan_audit_date")
    private LocalDateTime planAuditDate;

    /**
     * 状态（1启用、2停用）
     */
    @Excel(name = "状态", readConverterExp = "1=启用、2停用")
    @TableField("status")
    private String status;

    /** 培训记录附件 */
    @TableField(value = "appendix", typeHandler = FastjsonTypeHandler.class)
    private JSONArray appendix;


    public JSONArray getAppendix() {
        return appendix;
    }

    public void setAppendix(JSONArray appendix) {
        this.appendix = appendix;
    }

    public LocalDateTime getTrainDate() {
        return trainDate;
    }

    public void setTrainDate(LocalDateTime trainDate) {
        this.trainDate = trainDate;
    }

    public LocalDateTime getPlanMarkerDate() {
        return planMarkerDate;
    }

    public void setPlanMarkerDate(LocalDateTime planMarkerDate) {
        this.planMarkerDate = planMarkerDate;
    }

    public LocalDateTime getPlanAuditDate() {
        return planAuditDate;
    }

    public void setPlanAuditDate(LocalDateTime planAuditDate) {
        this.planAuditDate = planAuditDate;
    }

    public void setTrainTargets(String trainTargets) {
        this.trainTargets = trainTargets;
    }

    public String getTrainTargets() {
        return trainTargets;
    }

    public void setTrainPlace(String trainPlace) {
        this.trainPlace = trainPlace;
    }

    public String getTrainPlace() {
        return trainPlace;
    }

    public void setTrainContent(String trainContent) {
        this.trainContent = trainContent;
    }

    public String getTrainContent() {
        return trainContent;
    }

    public void setTrainTeacher(String trainTeacher) {
        this.trainTeacher = trainTeacher;
    }

    public String getTrainTeacher() {
        return trainTeacher;
    }

    public void setClassHour(String classHour) {
        this.classHour = classHour;
    }

    public String getClassHour() {
        return classHour;
    }

    public void setPlanMarker(String planMarker) {
        this.planMarker = planMarker;
    }

    public String getPlanMarker() {
        return planMarker;
    }


    public void setPlanAudit(String planAudit) {
        this.planAudit = planAudit;
    }

    public String getPlanAudit() {
        return planAudit;
    }


    @Override
    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String getStatus() {
        return status;
    }

}
